#ifndef CJavascriptCounter_h
#define CJavascriptCounter_h

#include "CCodeCounter.h"

class CJavascriptCounter : public CCodeCounter
{
public:
	CJavascriptCounter();

protected:
	virtual int CountDirectiveSLOC(filemap*, results*, filemap* fmbak=NULL);
	virtual int LanguageSpecificProcess(filemap*, results*, filemap* fmbak=NULL);
	void LSLOC(results* result, string line, string lineBak, string &strLSLOC, string &strLSLOCBak, int &paren_cnt,
		bool &forflag, bool &found_forifwhile, bool &found_while, char &prev_char, bool &data_continue,
		int &temp_lines, int &phys_exec_lines, int &phys_data_lines, bool &inArrayDec);
};

class CJavascriptPhpCounter : public CJavascriptCounter
{
public:
	CJavascriptPhpCounter();
};

class CJavascriptHtmlCounter : public CJavascriptCounter
{
public:
	CJavascriptHtmlCounter();
};

class CJavascriptJspCounter : public CJavascriptCounter
{
public:
	CJavascriptJspCounter();
};

class CJavascriptAspServerCounter : public CJavascriptCounter
{
public:
	CJavascriptAspServerCounter();
};

class CJavascriptAspClientCounter : public CJavascriptCounter
{
public:
	CJavascriptAspClientCounter();
};

#endif
